package y2016.date0614.am.接口回调;

public class Person {

    /**
     * @author LuTao
     * 接口：犯罪
     */
    public interface Fanzui {
        /**
         * 没有犯罪
         */
        public final int FANZUI_NO = 0;
        /**
         * 强奸
         */
        public final int FANZUI_QIANGJIAN = 1;
        /**
         * 抢劫
         */
        public final int FANZUI_QIANGJIE = 2;

        /**
         * 行为方法
         *
         * @param type     类型
         * @param objName1 发生行为的对象名1
         * @param objName2 发生行为的对象名2
         */
        public abstract void play(int type, String objName1, String objName2);
    }


    private String name;
    private Fanzui fanzui;

    public Person() {
    }

    public Person(String name) {
        this.name = name;
    }


    /**
     * 抢劫方法
     */
    public void qiangJie(String objName1, String objName2) {
        System.out.println("开始抢劫……");
        if (fanzui != null) {
            fanzui.play(Fanzui.FANZUI_QIANGJIE, objName1, objName2);//说明：当运行到此处时，抽象方法play()的实现是在Test中的，			//所以代码将在Test类中执行，实现两个类之间的通信。在Android中可以实现Activity和对话框，Fragment，View之间的通信。
        }
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        System.out.println("抢劫完成……");
    }

    /**
     * 强奸方法
     */
    public void qiangJian(String objName1, String objName2) {
        System.out.println("开始强奸……");

        if (fanzui != null) {
            fanzui.play(Fanzui.FANZUI_QIANGJIAN, objName1, objName2);//说明：当运行到此处时，抽象方法play()的实现是在Test中,			//所以代码将在Test类中执行，实现两个类之间的通信。在Android中可以实现Activity和对话框，Fragment，View之间的通信。
        }
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("强奸完成……");
    }

    /**
     * 设置监听接口对象。（使之Fanzui接口的声明不为null，从而能够完成paly()方法的调用）
     *
     * @param fanzui
     */
    public void setPlayListener(Fanzui fanzui) {
        this.fanzui = fanzui;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
//	public Fanzui getFanzui() {
//		return fanzui;
//	}
//	public void setFanzui(Fanzui fanzui) {
//		this.fanzui = fanzui;
//	}

}


